/*
java.io.ObjectOutputStream;
把对象以流的方式写入到文件中保存

java.io.ObjectInputStream;
把文件中保存的对象，以流的方式读取

static关键字：
  静态优先于非静态加载到内存中
  被static修饰的成员变量是不能被序列化的

transient关键字（瞬态关键字）：
  被修饰的成员变量不能被序列化
  （不想某些成员被序列化但是又不想设置成静态成员变量可以用这个）


class内容在序列化后被修改就不能反序列化（抛出异常）


 */

//要进行序列化和反序列化的类必须实现Serializable接口  （其实没有要重写的方法啦orz）
//实现后就会形成一个标记
public class person implements Serializable{
    public String name;
    public int age;
}



public class demo{

    public static void main(String[] args) throws IOException{
        ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream("文件"));

        oos.writeObject(new person("ni",10));   //二进制方式存储，不能直接查看

        oos.close();

        ObjectInputStream ois = new ObjectInputStream(new FileInputStream("文件"));

        Object o = ois.readObject();

        ois.close();

        System.out.println(o);

        person p = (person)o;    //可以强转类型
    }

}